ajax的post提交参数长度超出限制的解决办法

您所在的位置:网站首页 jquery 字符串长度 ajax的post提交参数长度超出限制的解决办法

ajax的post提交参数长度超出限制的解决办法

2024-07-17 07:36| 来源: 网络整理| 查看: 265

参考网站 https://segmentfault.com/a/1190000000754560

var imgData = $("img").toDataURL(); $.post(url,{imgData:imgData},function(){ })

这是一个 图片的base64编码字符串的post提交,

一般的图片base64都可以提交

只有某一个由于字符串较长所以,提交失败。

post的数据大小在3M以上,查阅网上资料说,最大可以提交2M,也有说post提交无限制,是服务器的设置问题。

尝试一、修改服务器的maxPostSize=0,没有网上描述的效果。

感谢@x201509指出maxPostSize设置:

maxPostSize设置为0是没有效果的,设置为一个指定大小是有效果的,如设置为8M大小。maxPostSize="8000000"。测试有效!

尝试二、还有一种办法,post请求json, data : "{xxxx"+xxxx"}";这类提交后台

最后通过request.getReader()来获取流信息,解析还原

这个方法能够解析到,但是仍然解析的不全,只能获取了传递的一半左右的数据.

尝试三、最后使用了这个办法成功解决。

img=img.split(',')[1]; img=window.atob(img); var ia = new Uint8Array(img.length); for (var i = 0; i < img.length; i++) { ia[i] = img.charCodeAt(i); }; var blob=new Blob([ia], {type:"image/png"}); var formdata=new FormData(); formdata.append('file',blob); $.ajax({ url : url, data : formdata, processData : false, contentType : false, dataType: 'json', type : "POST", success : function(data){} });

其他类似的超出最大限制的问题,也可以尝试这一类做法。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3